A.2 Routine Information Sources
To maintain
the most comprehensive information about all IDL routines on a
system, IDLWAVE collects data from many sources:
- It has a builtin list with information about the
routines IDL ships with. IDLWAVE 6.1 is distributed with a list
of 4346 routines and object methods, reflecting IDL version
6.3. As of IDL v6.2, the routine info is distributed directly
with IDL in the form of an XML catalog which IDLWAVE scans.
Formerly, this list was created by scanning the IDL manuals to
produce the file idlw-rinfo.el.
- IDLWAVE scans all its buffers in the
current Emacs session for routine definitions. This is done
automatically when routine information or completion is first
requested by the user. Each new buffer and each buffer saved
after making changes is also scanned. The command C-c
C-i (
idlwave-update-routine-info) can be
used at any time to rescan all buffers.
- If you have an IDLWAVE-Shell running in the Emacs session,
IDLWAVE will query the shell for compiled routines and
their arguments. This happens automatically when routine
information or completion is first requested by the user. Each
time an Emacs buffer is compiled with C-c C-d C-c,
the routine info for that file is queried. Though rarely
necessary, the command C-c C-i
(
idlwave-update-routine-info) can be used to
explicitly update the shell routine data.
- Many popular libraries are distributed with routine
information already scanned into library catalogs (see
Library
Catalogs). These per-directory catalog files can also be
built by the user with the supplied idlwave_catalog tool. They are
automatically discovered by IDLWAVE.
- IDLWAVE can scan selected directories of source files and
store the result in a single user catalog file which
will be automatically loaded just like idlw-rinfo.el. See User Catalog, for
information on how to scan files in this way.
Loading all the routine and catalog information can be a time
consuming process, especially over slow networks. Depending on
the system and network configuration it could take up to 30
seconds (though locally on fast systems is usually only a few
seconds). In order to minimize the wait time upon your first
completion or routine info command in a session, IDLWAVE uses
Emacs idle time to do the initialization in six steps, yielding
to user input in between. If this gets into your way, set the
variable idlwave-init-rinfo-when-idle-after to 0
(zero). The more routines documented in library and user
catalogs, the slower the loading will be, so reducing this number
can help alleviate any long load times.
— User Option:
idlwave-init-rinfo-when-idle-after
(
10)
Seconds of idle time before routine info is automatically
initialized.
— User Option:
idlwave-scan-all-buffers-for-routine-info
(
t)
Non-nil means scan all buffers for IDL
programs when updating info.
— User Option:
idlwave-query-shell-for-routine-info
(
t)
Non-nil means query the shell for info about
compiled routines.
— User Option:
idlwave-auto-routine-info-updates
Controls under what circumstances routine info is updated
automatically.